import { IsNotEmpty, Length, IsString, IsNumber, IsOptional, Min, IsDateString, Max } from 'class-validator';
import PaginationDto from 'src/dto/pagination.dto';

export class CommonDto {
    // @Min(0, {message : '请求非法'})
    // @IsNumber({}, {message : '请求非法'})
    // @IsOptional()
    // id:number;

    // @Min(0, {message : '请求非法'})
    // @IsNumber({}, {message : '请求非法'})
    // @IsOptional()
    // deviceId:number;

    @Length(20, 20, {message : '卡号长度在20个字符'})
    @IsString({message : '卡号必须是字符'})
    @IsNotEmpty({message : '请填写卡号'})
    cardNo:string;
    

    @IsDateString({}, {message : '请求非法'})
    @IsOptional()
    expireIn:string|number;

    @Max(1000, {message : '请求非法'})
    @Min(0, {message : '请求非法'})
    @IsNumber({}, {message : '请求非法'})
    @IsOptional()
    fee:string|number;
}

export class AddDto extends CommonDto {
    
}

export class EditDto extends CommonDto {
    
}

export class ListDto extends PaginationDto {
    @IsString()
    @IsOptional()
    cardNo:string;

    @IsDateString()
    @IsOptional()
    startExpire:string;

    @IsDateString()
    @IsOptional()
    endExpire:string;
}